package com.vimhe.easyimport.processor;

import java.util.Map;

/**
 * 数据处理器接口
 * <p>这里取到的数据一定是配置文件中对应的数据。</p>
 * <p>也就是说配置文件中没有指定的数据在这里将不会出现。</p>
 *
 * @author Vimhe
 */
public interface DataProcessor {

    /**
     * 处理一个单元格的数据
     *
     * @param sheetIndex 表索引
     * @param rowIndex   当前行
     * @param cellIndex  当前列
     * @param cellValue  当前列的数据
     */
    void processCell(final int sheetIndex, final int rowIndex, String cellIndex, Object cellValue);

    /**
     * 处理一行的数据
     *
     * @param sheetIndex 表索引
     * @param rowIndex   当前行
     * @param rowValue   当前行的数据
     */
    void processRow(final int sheetIndex, final int rowIndex, Map<String, Object> rowValue);

    /**
     * 处理一个工作表的数据
     *
     * @param sheetIndex 表索引
     * @param sheetValue 当前工作表的数据
     */
    void processSheet(final int sheetIndex, Map<Integer, Map<String, Object>> sheetValue);

    /**
     * 处理一个文件的数据
     *
     * @param fileValue 当前文件的数据
     */
    void processFile(Map<Integer, Map<Integer, Map<String, Object>>> fileValue);

}
